﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace S.PurchaseAndSales.Domain.Model
{
    /// <summary>
    /// 客户信息表
    /// </summary>
    [Table("CustomerInformation")]
    public class CustomerInformationModel
    {
        [Key]
        ///主键雪花Id
        public int CustomerInformationId { get; set; }

        /// <summary>
        /// 客户类型
        /// </summary>
        public int? CustomerType { get; set; }

        /// <summary>
        /// 负责人手机号
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        [MaxLength(50)]
        public string? ChargePersonPhone { get; set; }

        /// <summary>
        /// 负责人姓名
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        [MaxLength(50)]
        public string? ChargePersonName { get; set; }

        /// <summary>
        /// 客户名称
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        [MaxLength(50)]
        public string? CustomerName { get; set; }

        /// <summary>
        /// 身份证
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        [MaxLength(50)]
        public string? IdentityCard { get; set; }

        /// <summary>
        /// 所在地
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        [MaxLength(50)]
        public string? location { get; set; }

        /// <summary>
        /// 所属行业
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        [MaxLength(50)]
        public string? Industry { get; set; }

        /// <summary>
        /// 统一社会信用代码
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        [MaxLength(50)]
        public string? SocialCreditCode { get; set; }

        /// <summary>
        /// 助记码
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        [MaxLength(50)]
        public string? MnemonicCode { get; set; }

        /// <summary>
        /// 客户的归集档案
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        [MaxLength(50)]
        public string? CollectionFile { get; set; }

        /// <summary>
        /// 客户阶段
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        [MaxLength(50)]
        public string? CustomerStage { get; set; }

        /// <summary>
        /// 客户自定义标签
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        [MaxLength(50)]
        public string? CustomLabel { get; set; }

        /// <summary>
        /// 意向产品
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        [MaxLength(50)]
        public string? IntendedProduct { get; set; }

        /// <summary>
        /// 合作日期
        /// </summary>
        public DateTime? CooperationDate { get; set; }

        /// <summary>
        /// 所属单位
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        [MaxLength(50)]
        public string? AffiliatedUnit { get; set; }

        /// <summary>
        /// 使用状态
        /// </summary>
        public int? UseCondition { get; set; }

        /// <summary>
        /// 上级客户
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        [MaxLength(50)]
        public string? SuperiorCustomer { get; set; }

        /// <summary>
        /// 客户级别
        /// </summary>
        public int? CustomerLevel { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        [Column(TypeName = "nvarchar(200)")]
        [MaxLength(200)]
        public string? Remark
        {
            get; set;

        }/// <summary>
         /// 所属市场
         /// </summary>
        [Column(TypeName = "nvarchar(200)")]
        [MaxLength(200)]
        public string? Market { get; set; }

        /// <summary>
        /// 业务员
        /// </summary>
        [Column(TypeName = "nvarchar(200)")]
        [MaxLength(200)]
        public string? Salesman { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        [MaxLength(50)]
        public string? CreateBy { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime? CreateDate { get; set; }

        /// <summary>
        /// 修改人
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        [MaxLength(50)]
        public string? UpdateBy { get; set; }
        /// <summary>
        /// 修改时间
        /// </summary>
        public DateTime? UpdateDate { get; set; }
        /// <summary>
        /// 所在地（省）ID
        /// </summary>
        public int? ProvinceId { get; set; }

        /// <summary>
        /// 所在地（市）ID
        /// </summary>
        public int? CityId { get; set; }

        /// <summary>
        /// 所在地（区）ID
        /// </summary>
        public int? AreaId { get; set; }

    }
}
